<template>
	<view class="content">
		<view class="row b-b">
			<text class="tit">联系人</text>
			<input class="input" type="text" v-model="addressData.name" placeholder="收货人姓名" placeholder-class="placeholder" />
		</view>
			<button plain v-if="!isGetMobile" :style="[{background: '#FFF',padding: '0 15rpx',height: '110upx',border: 0,marginBottom: '1px',height: '110rpx',lineHeight: '110rpx'}]" type="default" @getphonenumber="getUserPhoneNumber" open-type="getPhoneNumber">
				<view class="phone-box2">
					<text class="tit2">手机号</text>
					<text class="input2">点击获取您的手机号</text>
				</view>
			</button>
		<view class="row b-b" v-if="isGetMobile">
			<view class="phone-box phone-box2">
				<text class="tit">手机号</text>
				<input class="input" type="number" v-model="addressData.mobile" placeholder="点击获取您的手机号" placeholder-class="placeholder" />
			</view>
		</view>
			
		<view class="row b-b" @click="chooseLocation">
			<text class="tit">地址</text>
			<text class="input">
				{{addressData.address}}
			</text>
			<text class="yticon icon-shouhuodizhi"></text>
		</view>
		<view class="row b-b"> 
			<text class="tit">门牌号</text>
			<input class="input" type="text" v-model="addressData.area" placeholder="楼号、门牌" placeholder-class="placeholder" />
		</view>
		
		<view class="row default-row">
			<text class="tit">设为默认</text>
			<switch :checked="addressData.is_default === '1' ? true : false" color="#fa436a" @change="switchChange" />
		</view>
		<button class="add-btn" @click="confirm">提交</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				addressData: {
					id: '',
					name: '',
					mobile: '',
					address: '',
					area: '',
					is_default: false
				},
				isEdit: false,
				code: '',
				isGetMobile: false
			}
		},
		onLoad(option){
			this.wxLogin()
			let title = '新增收货地址';
			if(option.type==='edit'){
				this.isEdit = true
				this.addressData = JSON.parse(option.data)
			}
			this.manageType = option.type;
			uni.setNavigationBarTitle({
				title
			})
		},
		methods: {
			wxLogin () {
				wx.login({
					success: (res) => {
						this.code = res.code	
					}
				})
			},
			// get user phone by Api
			async getUserPhoneNumber (e) {
				if (!e.detail.iv || this.isGetMobile) return 
				let obj  = {
					code: this.code,
					iv: e.detail.iv,
					encryptedData: e.detail.encryptedData
				}
				this.isGetMobile = true
				try {
					const {data: res}= await uni.$http.post('/pay/getUserPhone',obj)
					if (res.status!== 200) return uni.showToast({
						icon: 'none',
						title: '获取手机号错误，请反馈联系管理员'
					})
					console.log(this.addressData.mobile)
					this.addressData.mobile = res.data.phoneNumber || res.data.purePhoneNumber	
				} catch (e) {
					uni.showToast({
						icon: 'none',
						title: '获取手机号错误，请反馈联系管理员'
					})
				}
			},
			switchChange(e){
				this.addressData.is_default = e.detail ? '1' : '0'
			},
			
			//地图选择地址
			chooseLocation(){
				console.log('OK')
				uni.chooseLocation({
					success: (data)=> {
						this.addressData.address = data.name
					},
					fail (e) {

		wx.getSetting({
			success: function(res) {
				var statu = res.authSetting;
				console.log(statu);
				if (!statu['scope.userLocation']) {
					console.log(123);
					wx.showModal({
						title: '是否授权当前位置',
						content: '需要获取您的地理位置，请确认授权，否则地图功能将无法使用',
						success(tip) {
							if (tip.confirm) {
								wx.openSetting({
									success: function(data) {
										if (data.authSetting["scope.userLocation"] === true) {
											wx.showToast({
												title: '授权成功',
												icon: 'success',
												duration: 1000
											})
											setTimeout(function() {
												wx.chooseLocation({
													success: (data) => {
														this.addressData.address = data.name
													}
												})
											}, 1000)
										}
									}
								})
							} else {
								wx.showToast({
									title: '授权失败',
									icon: 'none',
									duration: 1000
								})
							}
						}
					})
 
				}
			}
		})
					}
				})
			},
			
			//提交
			async confirm(){
				let data = this.addressData;
				if(!data.name){
					this.$api.msg('请填写收货人姓名');
					return;
				}
				if(!/(^1[3|4|5|7|8|9][0-9]{9}$)/.test(data.mobile)){
					this.$api.msg('请输入正确的手机号码');
					return;
				}
				if(!data.address){
					this.$api.msg('请在地图选择所在位置');
					return;
				}
				if(!data.area){
					this.$api.msg('请填写门牌号信息');
					return;
				}
				// 添加
				uni.showLoading()
				if (!this.isEdit) {
					try {
						const {data: res} = await uni.$http.post('/address/addaddress',this.addressData)
						uni.hideLoading()
						if (res.status !== 0) return this.$api.msg(res.message)
						this.$api.prePage().refreshList();
						this.$api.msg(`地址${this.isEdit ? '修改': '添加'}成功`);
						setTimeout(()=>{
							uni.navigateBack()
						}, 800)
					} catch (e) {
						uni.hideLoading()
						return this.$api.msg(e)
					}
				} 
				if (this.isEdit) { // 修改
					this.addressData.id =  this.addressData.id + ''
					try {
						const {data: res} = await uni.$http.post('/address/editaddress',this.addressData)
						uni.hideLoading()
						if (res.status !== 0) return this.$api.msg(res.message)
						this.$api.prePage().refreshList();
						this.$api.msg(`地址${this.isEdit ? '修改': '添加'}成功`);
						setTimeout(()=>{
							uni.navigateBack()
						}, 800)
					} catch (e) {
						uni.hideLoading()
						return this.$api.msg(e)
					}
				}		
			},
		}
	}
</script>

<style lang="scss">
	.phone-box2 {
		.input {
			margin-left: 5rpx;
		}
	}
	.phone-box2 {
		display: flex;
		align-items: center;
		.tit2 {
			flex-shrink: 0;
			width: 120upx;
			font-size: 30upx;
			color: $font-color-dark;
		}
		.input2{
			font-size: 30upx;	
			margin-left: 8rpx;
			height: 100%;
			diplay: flex;
			color: #909399;
		}
	}
	
	page{
		background: $page-color-base;
		padding-top: 16upx;
	}

	.row{
		display: flex;
		align-items: center;
		position: relative;
		padding:0 30upx;
		height: 110upx;
		background: #fff;
		.tit{
			flex-shrink: 0;
			width: 120upx;
			font-size: 30upx;
			color: $font-color-dark;
		}
		.input{
			flex: 1;
			font-size: 30upx;
			color: $font-color-dark;
		}
		.icon-shouhuodizhi{
			font-size: 36upx;
			color: $font-color-light;
		}
	}
	.default-row{
		margin-top: 16upx;
		.tit{
			flex: 1;
		}
		switch{
			transform: translateX(16upx) scale(.9);
		}
	}
	.add-btn{
		display: flex;
		align-items: center;
		justify-content: center;
		width: 690upx;
		height: 80upx;
		margin: 60upx auto;
		font-size: $font-lg;
		color: #fff;
		background-color: $base-color;
		border-radius: 10upx;
		box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
	}
</style>
